# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter
import sqlite3


class CqGwyPipeline:
    def process_item(self, item, spider):
        return item


class SQLitePipeline:
    def open_spider(self, spider):
        # 连接到SQLite数据库
        self.conn = sqlite3.connect('cq_gwy.db')
        self.cursor = self.conn.cursor()
        # 创建表（如果不存在）
        self.cursor.execute('''
            CREATE TABLE IF NOT EXISTS gwy_data (
                序号 INTEGER,
                地区部门 TEXT,
                报考单位 TEXT,
                报考职位 TEXT,
                计划招考人数 INTEGER,
                交费人数 INTEGER
            )
        ''')
        self.conn.commit()

    def close_spider(self, spider):
        # 关闭数据库连接
        self.conn.close()

    def process_item(self, item, spider):
        # 插入数据到表中
        self.cursor.execute('''
            INSERT INTO gwy_data (序号, 地区部门, 报考单位, 报考职位, 计划招考人数, 交费人数)
            VALUES (?, ?, ?, ?, ?, ?)
        ''', (
            item['序号'],
            item['地区部门'],
            item['报考单位'],
            item['报考职位'],
            item['计划招考人数'],
            item['交费人数']
        ))
        self.conn.commit()
        return item